/*
 * $Id$
 */

package com.huiquan.sphinx;

/**
 * Search result set.
 *
 * Includes retrieved matches array, status code and error/warning messages,
 * query stats, and per-word stats.
 */
public class SphinxResult {
	/** Full-text field namess. */
	public String[] fields;

	/** Attribute names. */
	public String[] attrNames;

	/** Attribute types (refer to SPH_ATTR_xxx constants in SphinxClient). */
	public int[] attrTypes;

	/** Retrieved matches. */
	public SphinxMatch[] matches;

	/** Total matches in this result set. */
	public int total;

	/** Total matches found in the index(es). */
	public int totalFound;

	/** Elapsed time (as reported by searchd), in seconds. */
	public float time;

	/** Per-word statistics. */
	public SphinxWordInfo[] words;

	public String[] getFields() {
		return fields;
	}

	public void setFields(String[] fields) {
		this.fields = fields;
	}

	public String[] getAttrNames() {
		return attrNames;
	}

	public void setAttrNames(String[] attrNames) {
		this.attrNames = attrNames;
	}

	public int[] getAttrTypes() {
		return attrTypes;
	}

	public void setAttrTypes(int[] attrTypes) {
		this.attrTypes = attrTypes;
	}

	public SphinxMatch[] getMatches() {
		return matches;
	}

	public void setMatches(SphinxMatch[] matches) {
		this.matches = matches;
	}

	public int getTotal() {
		return total;
	}

	public void setTotal(int total) {
		this.total = total;
	}

	public int getTotalFound() {
		return totalFound;
	}

	public void setTotalFound(int totalFound) {
		this.totalFound = totalFound;
	}

	public float getTime() {
		return time;
	}

	public void setTime(float time) {
		this.time = time;
	}

	public SphinxWordInfo[] getWords() {
		return words;
	}

	public void setWords(SphinxWordInfo[] words) {
		this.words = words;
	}

	public String getWarning() {
		return warning;
	}

	public void setWarning(String warning) {
		this.warning = warning;
	}

	public String getError() {
		return error;
	}

	public void setError(String error) {
		this.error = error;
	}

	/** Warning message, if any. */
	public String warning = null;

	/** Error message, if any. */
	public String error = null;

	/** Query status (refer to SEARCHD_xxx constants in SphinxClient). */
	private int status = -1;

	/** Trivial constructor, initializes an empty result set. */
	public SphinxResult() {
		this.attrNames = new String[0];
		this.matches = new SphinxMatch[0];
		;
		this.words = new SphinxWordInfo[0];
		this.fields = new String[0];
		this.attrTypes = new int[0];
	}

	/** Get query status. */
	public int getStatus() {
		return status;
	}

	/** Set query status (accessible from API package only). */
	void setStatus(int status) {
		this.status = status;
	}
}

/*
 * $Id$
 */
